<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.18"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>ML-HElib: DoubleMatrixArray Class Reference</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
		<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;1,700&family=Merriweather&family=Merriweather+Sans&family=Open+Sans&family=Poppins:ital@1&family=Roboto:ital,wght@0,400;1,300;1,900&display=swap" rel="stylesheet"> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body style="font-family: 'Merriweather', serif;">
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">ML-HElib </a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_double_matrix_array-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">DoubleMatrixArray Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_double_matrix_array_8h_source.html">DoubleMatrixArray.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0a9632b5c2c2eacf20e4f5338a31228b"><td class="memItemLeft" align="right" valign="top"><a id="a0a9632b5c2c2eacf20e4f5338a31228b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>DoubleMatrixArray</b> (int rows, int cols, int len)</td></tr>
<tr class="separator:a0a9632b5c2c2eacf20e4f5338a31228b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4133d4aad9d70509b38ec807177b1c7"><td class="memItemLeft" align="right" valign="top"><a id="ad4133d4aad9d70509b38ec807177b1c7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>DoubleMatrixArray</b> (std::ifstream &amp;matricesFile)</td></tr>
<tr class="separator:ad4133d4aad9d70509b38ec807177b1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63e11e87606c2736321b7af5f23d9006"><td class="memItemLeft" align="right" valign="top"><a id="a63e11e87606c2736321b7af5f23d9006"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>DoubleMatrixArray</b> (int len, const std::vector&lt; std::vector&lt; double &gt; &gt; &amp;fixedMatrix)</td></tr>
<tr class="separator:a63e11e87606c2736321b7af5f23d9006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a181813e2d4aabea78e7b7ea3d1fd6d75"><td class="memItemLeft" align="right" valign="top"><a id="a181813e2d4aabea78e7b7ea3d1fd6d75"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>DoubleMatrixArray</b> (int len, const std::vector&lt; std::vector&lt; float &gt; &gt; &amp;fixedMatrix)</td></tr>
<tr class="separator:a181813e2d4aabea78e7b7ea3d1fd6d75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e4b8e2ed7844a6f24b905ad0e3d5a2"><td class="memItemLeft" align="right" valign="top"><a id="a77e4b8e2ed7844a6f24b905ad0e3d5a2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>DoubleMatrixArray</b> (int len, const <a class="el" href="class_double_matrix.html">DoubleMatrix</a> &amp;fixedMatrix)</td></tr>
<tr class="separator:a77e4b8e2ed7844a6f24b905ad0e3d5a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4921d2e91d1f8d389b4ef552f9c977c3"><td class="memItemLeft" align="right" valign="top"><a id="a4921d2e91d1f8d389b4ef552f9c977c3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>DoubleMatrixArray</b> (const boost::numeric::ublas::tensor&lt; double &gt; &amp;tensor)</td></tr>
<tr class="separator:a4921d2e91d1f8d389b4ef552f9c977c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0d3ba4b2785880a82dde8f169b08a4e"><td class="memItemLeft" align="right" valign="top"><a id="aa0d3ba4b2785880a82dde8f169b08a4e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (int rows, int cols, int len)</td></tr>
<tr class="separator:aa0d3ba4b2785880a82dde8f169b08a4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa91b99ee494e2bee55b1cf1ca37ef1bb"><td class="memItemLeft" align="right" valign="top"><a id="aa91b99ee494e2bee55b1cf1ca37ef1bb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (int len, const std::vector&lt; std::vector&lt; double &gt; &gt; &amp;fixedMatrix)</td></tr>
<tr class="separator:aa91b99ee494e2bee55b1cf1ca37ef1bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5d2b9ce88854d9523e8a00aa67ca386"><td class="memItemLeft" align="right" valign="top"><a id="ac5d2b9ce88854d9523e8a00aa67ca386"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (int len, const std::vector&lt; std::vector&lt; float &gt; &gt; &amp;fixedMatrix)</td></tr>
<tr class="separator:ac5d2b9ce88854d9523e8a00aa67ca386"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa194a082ec764a5c5d573901401dd7"><td class="memItemLeft" align="right" valign="top"><a id="aafa194a082ec764a5c5d573901401dd7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (int len, const <a class="el" href="class_double_matrix.html">DoubleMatrix</a> &amp;fixedMatrix)</td></tr>
<tr class="separator:aafa194a082ec764a5c5d573901401dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49974870b51dc578d0539ce2295c4572"><td class="memItemLeft" align="right" valign="top"><a id="a49974870b51dc578d0539ce2295c4572"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (const boost::numeric::ublas::tensor&lt; double &gt; &amp;tensor)</td></tr>
<tr class="separator:a49974870b51dc578d0539ce2295c4572"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c48aec57cc0ec8cea0236f87fb3f94"><td class="memItemLeft" align="right" valign="top"><a id="ac0c48aec57cc0ec8cea0236f87fb3f94"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>initFromH5File</b> (int len, const std::string &amp;h5File, const std::string &amp;path)</td></tr>
<tr class="separator:ac0c48aec57cc0ec8cea0236f87fb3f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae82b974a0ec87369439f716c3b425cc0"><td class="memItemLeft" align="right" valign="top"><a id="ae82b974a0ec87369439f716c3b425cc0"></a>
std::streamoff&#160;</td><td class="memItemRight" valign="bottom"><b>save</b> (std::ostream &amp;stream) const</td></tr>
<tr class="separator:ae82b974a0ec87369439f716c3b425cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b3813ba3c363a927ce281b8452befa9"><td class="memItemLeft" align="right" valign="top"><a id="a2b3813ba3c363a927ce281b8452befa9"></a>
std::streamoff&#160;</td><td class="memItemRight" valign="bottom"><b>load</b> (std::istream &amp;stream)</td></tr>
<tr class="separator:a2b3813ba3c363a927ce281b8452befa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27633ebfcd8fc0593331a3fc5c9219b4"><td class="memItemLeft" align="right" valign="top"><a id="a27633ebfcd8fc0593331a3fc5c9219b4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>loadMatrix</b> (int matrixIndex, const std::string &amp;h5File, const std::string &amp;path)</td></tr>
<tr class="separator:a27633ebfcd8fc0593331a3fc5c9219b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68f081e0d4ddc050cf736278064c4af9"><td class="memItemLeft" align="right" valign="top"><a id="a68f081e0d4ddc050cf736278064c4af9"></a>
boost::numeric::ublas::tensor&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>getTensor</b> () const</td></tr>
<tr class="separator:a68f081e0d4ddc050cf736278064c4af9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3c281166005ff42736776130cdcb240"><td class="memItemLeft" align="right" valign="top"><a id="af3c281166005ff42736776130cdcb240"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getConvolution</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;filter, int strideRows, int strideCol) const</td></tr>
<tr class="separator:af3c281166005ff42736776130cdcb240"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bcbb237a50dc03c3068ea55171c8a53"><td class="memItemLeft" align="right" valign="top"><a id="a2bcbb237a50dc03c3068ea55171c8a53"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const</td></tr>
<tr class="separator:a2bcbb237a50dc03c3068ea55171c8a53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa22f646d38a4bf108d19d75642543364"><td class="memItemLeft" align="right" valign="top"><a id="aa22f646d38a4bf108d19d75642543364"></a>
const <a class="el" href="class_double_matrix.html">DoubleMatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getMat</b> (int i) const</td></tr>
<tr class="separator:aa22f646d38a4bf108d19d75642543364"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b73676f121b428d6cf5c186c3bce046"><td class="memItemLeft" align="right" valign="top"><a id="a9b73676f121b428d6cf5c186c3bce046"></a>
<a class="el" href="class_double_matrix.html">DoubleMatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getMat</b> (int i)</td></tr>
<tr class="separator:a9b73676f121b428d6cf5c186c3bce046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad38298fabd955b56af326cc1b81fbf15"><td class="memItemLeft" align="right" valign="top"><a id="ad38298fabd955b56af326cc1b81fbf15"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>rows</b> () const</td></tr>
<tr class="separator:ad38298fabd955b56af326cc1b81fbf15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a580b3fb72cbb0e68f96924022a882551"><td class="memItemLeft" align="right" valign="top"><a id="a580b3fb72cbb0e68f96924022a882551"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>cols</b> () const</td></tr>
<tr class="separator:a580b3fb72cbb0e68f96924022a882551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2971ac252857216e452e47baadfba3c9"><td class="memItemLeft" align="right" valign="top"><a id="a2971ac252857216e452e47baadfba3c9"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getMatrixMultiply</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other) const</td></tr>
<tr class="separator:a2971ac252857216e452e47baadfba3c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f83b05a481a820357b409ed835313f"><td class="memItemLeft" align="right" valign="top"><a id="a25f83b05a481a820357b409ed835313f"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTranspose</b> () const</td></tr>
<tr class="separator:a25f83b05a481a820357b409ed835313f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab9b9946106c64cbc785fdac0763f3ed"><td class="memItemLeft" align="right" valign="top"><a id="aab9b9946106c64cbc785fdac0763f3ed"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getSubMatrix</b> (int row1, int col1, int row2, int col2) const</td></tr>
<tr class="separator:aab9b9946106c64cbc785fdac0763f3ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20b02784cff52a0adfde17bc13101dff"><td class="memItemLeft" align="right" valign="top"><a id="a20b02784cff52a0adfde17bc13101dff"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getSubMatrix</b> (int row, int col) const</td></tr>
<tr class="separator:a20b02784cff52a0adfde17bc13101dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeeb1adb8b4dfb295c7c1c6c9ddfbdff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_double_matrix_array.html#aeeeb1adb8b4dfb295c7c1c6c9ddfbdff">getColumn</a> (int col) const</td></tr>
<tr class="separator:aeeeb1adb8b4dfb295c7c1c6c9ddfbdff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24f6afe4e24fa1f256a7108789e0be6c"><td class="memItemLeft" align="right" valign="top"><a id="a24f6afe4e24fa1f256a7108789e0be6c"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getMeanAlongRows</b> () const</td></tr>
<tr class="separator:a24f6afe4e24fa1f256a7108789e0be6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a299d047dd6eb58440a4ab736e99cf9d5"><td class="memItemLeft" align="right" valign="top"><a id="a299d047dd6eb58440a4ab736e99cf9d5"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getMeanAlongCols</b> () const</td></tr>
<tr class="separator:a299d047dd6eb58440a4ab736e99cf9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3706dcec467bb127abb68a498880141c"><td class="memItemLeft" align="right" valign="top"><a id="a3706dcec467bb127abb68a498880141c"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getMeanInDepth</b> () const</td></tr>
<tr class="separator:a3706dcec467bb127abb68a498880141c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b4aa746f842e6f70d0bf4277c6fbf98"><td class="memItemLeft" align="right" valign="top"><a id="a8b4aa746f842e6f70d0bf4277c6fbf98"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getSumAlongRows</b> () const</td></tr>
<tr class="separator:a8b4aa746f842e6f70d0bf4277c6fbf98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a584b56f4f911b0f17341753488780079"><td class="memItemLeft" align="right" valign="top"><a id="a584b56f4f911b0f17341753488780079"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getSumAlongCols</b> () const</td></tr>
<tr class="separator:a584b56f4f911b0f17341753488780079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa35685bc5405c3a731aa1fa34e9a63ca"><td class="memItemLeft" align="right" valign="top"><a id="aa35685bc5405c3a731aa1fa34e9a63ca"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getSumInDepth</b> () const</td></tr>
<tr class="separator:aa35685bc5405c3a731aa1fa34e9a63ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3149f6c5a2a7c7abd013d86486c2b73"><td class="memItemLeft" align="right" valign="top"><a id="af3149f6c5a2a7c7abd013d86486c2b73"></a>
<a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getMultiplyByScalar</b> (double scalar) const</td></tr>
<tr class="separator:af3149f6c5a2a7c7abd013d86486c2b73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b76d1cdd84233911982bd9456ac1d05"><td class="memItemLeft" align="right" valign="top"><a id="a5b76d1cdd84233911982bd9456ac1d05"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>flattenIntoVec</b> (std::vector&lt; double &gt; &amp;vec) const</td></tr>
<tr class="separator:a5b76d1cdd84233911982bd9456ac1d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba1f2945038679df712a1fd4113cd44d"><td class="memItemLeft" align="right" valign="top"><a id="aba1f2945038679df712a1fd4113cd44d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>transpose</b> ()</td></tr>
<tr class="separator:aba1f2945038679df712a1fd4113cd44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9b7dcadc5f710fe96dd53690c97bbfd"><td class="memItemLeft" align="right" valign="top"><a id="ac9b7dcadc5f710fe96dd53690c97bbfd"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>square</b> ()</td></tr>
<tr class="separator:ac9b7dcadc5f710fe96dd53690c97bbfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26c3ef20b77ed3469712cd057dd163c5"><td class="memItemLeft" align="right" valign="top"><a id="a26c3ef20b77ed3469712cd057dd163c5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>add</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other)</td></tr>
<tr class="separator:a26c3ef20b77ed3469712cd057dd163c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad76224724e39c4eecaabf865033e9c93"><td class="memItemLeft" align="right" valign="top"><a id="ad76224724e39c4eecaabf865033e9c93"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>addAt</b> (double val, int row, int col)</td></tr>
<tr class="separator:ad76224724e39c4eecaabf865033e9c93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72a94e337e168ce0397f1420e6ddb1ef"><td class="memItemLeft" align="right" valign="top"><a id="a72a94e337e168ce0397f1420e6ddb1ef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>addAt</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other, int startRow, int startCol)</td></tr>
<tr class="separator:a72a94e337e168ce0397f1420e6ddb1ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13dba94c9f73a056bb7c832a33236580"><td class="memItemLeft" align="right" valign="top"><a id="a13dba94c9f73a056bb7c832a33236580"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>sub</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other)</td></tr>
<tr class="separator:a13dba94c9f73a056bb7c832a33236580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7708d4ac87c1145cdc3e1a0b1da99e1a"><td class="memItemLeft" align="right" valign="top"><a id="a7708d4ac87c1145cdc3e1a0b1da99e1a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>elementMultiply</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other)</td></tr>
<tr class="separator:a7708d4ac87c1145cdc3e1a0b1da99e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2efa7fd7fee141fefcd2255dd870f60a"><td class="memItemLeft" align="right" valign="top"><a id="a2efa7fd7fee141fefcd2255dd870f60a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>elementMultiplyAt</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other, int startRow, int startCol)</td></tr>
<tr class="separator:a2efa7fd7fee141fefcd2255dd870f60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a787cb17acd5659555aa77d254d4d1172"><td class="memItemLeft" align="right" valign="top"><a id="a787cb17acd5659555aa77d254d4d1172"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>multiplyByScalar</b> (double scalar)</td></tr>
<tr class="separator:a787cb17acd5659555aa77d254d4d1172"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ec52fc09068a42779f9e3151ec07b3"><td class="memItemLeft" align="right" valign="top"><a id="af6ec52fc09068a42779f9e3151ec07b3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>innerSum</b> ()</td></tr>
<tr class="separator:af6ec52fc09068a42779f9e3151ec07b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae53e4f58beae175b79aa53bd6ff9dca5"><td class="memItemLeft" align="right" valign="top"><a id="ae53e4f58beae175b79aa53bd6ff9dca5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>meanAlongRows</b> ()</td></tr>
<tr class="separator:ae53e4f58beae175b79aa53bd6ff9dca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e45409732a2e534cbf7296a1401dba0"><td class="memItemLeft" align="right" valign="top"><a id="a8e45409732a2e534cbf7296a1401dba0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>meanAlongCols</b> ()</td></tr>
<tr class="separator:a8e45409732a2e534cbf7296a1401dba0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe4266c1ed955383aa06a50ab76638b9"><td class="memItemLeft" align="right" valign="top"><a id="afe4266c1ed955383aa06a50ab76638b9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>meanInDepth</b> ()</td></tr>
<tr class="separator:afe4266c1ed955383aa06a50ab76638b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab850294ce71f992fa01742b99748fb04"><td class="memItemLeft" align="right" valign="top"><a id="ab850294ce71f992fa01742b99748fb04"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>sumAlongRows</b> ()</td></tr>
<tr class="separator:ab850294ce71f992fa01742b99748fb04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780d96ce1b397aced2b25cf91e0f0460"><td class="memItemLeft" align="right" valign="top"><a id="a780d96ce1b397aced2b25cf91e0f0460"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>sumAlongCols</b> ()</td></tr>
<tr class="separator:a780d96ce1b397aced2b25cf91e0f0460"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f7f9d7563e91cf17a3fbecf9c1016ef"><td class="memItemLeft" align="right" valign="top"><a id="a8f7f9d7563e91cf17a3fbecf9c1016ef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>sumInDepth</b> ()</td></tr>
<tr class="separator:a8f7f9d7563e91cf17a3fbecf9c1016ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8053c09781a78b87bad892ff0a5a1c2"><td class="memItemLeft" align="right" valign="top"><a id="aa8053c09781a78b87bad892ff0a5a1c2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>initRandom</b> ()</td></tr>
<tr class="separator:aa8053c09781a78b87bad892ff0a5a1c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b0c6c17f2138bfdbe9b2de4e427d07f"><td class="memItemLeft" align="right" valign="top"><a id="a0b0c6c17f2138bfdbe9b2de4e427d07f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>initRandomSame</b> ()</td></tr>
<tr class="separator:a0b0c6c17f2138bfdbe9b2de4e427d07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ec4969f7393eca55add398a9ae47c3f"><td class="memItemLeft" align="right" valign="top"><a id="a1ec4969f7393eca55add398a9ae47c3f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>initConst</b> (double v)</td></tr>
<tr class="separator:a1ec4969f7393eca55add398a9ae47c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15a3cbbf942f5667c6e465e087ae6432"><td class="memItemLeft" align="right" valign="top"><a id="a15a3cbbf942f5667c6e465e087ae6432"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>initHotel</b> ()</td></tr>
<tr class="separator:a15a3cbbf942f5667c6e465e087ae6432"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b9d6608080ca2e1ed72062d57605afe"><td class="memItemLeft" align="right" valign="top"><a id="a1b9d6608080ca2e1ed72062d57605afe"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>debugPrint</b> (std::ostream &amp;out, const std::string &amp;title, int verboseLevel=1) const</td></tr>
<tr class="separator:a1b9d6608080ca2e1ed72062d57605afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3328e223a8e94e43fc047a62b80d7170"><td class="memItemLeft" align="right" valign="top"><a id="a3328e223a8e94e43fc047a62b80d7170"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>testEquals</b> (const std::string &amp;title, const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other, double eps=1e-6) const</td></tr>
<tr class="separator:a3328e223a8e94e43fc047a62b80d7170"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab765779c88c62a26ede4ab0dc53890"><td class="memItemLeft" align="right" valign="top"><a id="a8ab765779c88c62a26ede4ab0dc53890"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>testEqualsZero</b> (const std::string &amp;title, const std::vector&lt; int &gt; &amp;zs, double eps=1e-6) const</td></tr>
<tr class="separator:a8ab765779c88c62a26ede4ab0dc53890"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a371dc28a3466bf9a31ccdd2157d03484"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_double_matrix_array.html#a371dc28a3466bf9a31ccdd2157d03484">testSameAlongDepth</a> (const std::string &amp;title, double eps=1e-6) const</td></tr>
<tr class="separator:a371dc28a3466bf9a31ccdd2157d03484"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6333b3c1c9161f7673c7c1c79a887a60"><td class="memItemLeft" align="right" valign="top"><a id="a6333b3c1c9161f7673c7c1c79a887a60"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>testSameSize</b> (const std::string &amp;title, const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other) const</td></tr>
<tr class="separator:a6333b3c1c9161f7673c7c1c79a887a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6f9bdd3e75cf78dd5bce2f382a997eb"><td class="memItemLeft" align="right" valign="top"><a id="ad6f9bdd3e75cf78dd5bce2f382a997eb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>testSameDims</b> (const std::string &amp;title, const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other) const</td></tr>
<tr class="separator:ad6f9bdd3e75cf78dd5bce2f382a997eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf6fb7898e2b509f0c826ee4d9960d7d"><td class="memItemLeft" align="right" valign="top"><a id="acf6fb7898e2b509f0c826ee4d9960d7d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>checkIfEqual</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other, double eps=1e-6) const</td></tr>
<tr class="separator:acf6fb7898e2b509f0c826ee4d9960d7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1526bc7e81992421bc451c5cdbec7f40"><td class="memItemLeft" align="right" valign="top"><a id="a1526bc7e81992421bc451c5cdbec7f40"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>checkIfSameSize</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other) const</td></tr>
<tr class="separator:a1526bc7e81992421bc451c5cdbec7f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f5e210a2d4d0d92b4f8d9469009fada"><td class="memItemLeft" align="right" valign="top"><a id="a5f5e210a2d4d0d92b4f8d9469009fada"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>checkIfSameDims</b> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other) const</td></tr>
<tr class="separator:a5f5e210a2d4d0d92b4f8d9469009fada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd7e4ec304df1edb89f067e412967342"><td class="memItemLeft" align="right" valign="top"><a id="acd7e4ec304df1edb89f067e412967342"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>pushBackMatrix</b> (const <a class="el" href="class_double_matrix.html">DoubleMatrix</a> &amp;mat)</td></tr>
<tr class="separator:acd7e4ec304df1edb89f067e412967342"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56abde900700d1a179843f3967e829ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_double_matrix_array.html#a56abde900700d1a179843f3967e829ad">depthSlice</a> (int start, int end) const</td></tr>
<tr class="separator:a56abde900700d1a179843f3967e829ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52ea77d610d1a8cee2254385ecf0e373"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_double_matrix_array.html#a52ea77d610d1a8cee2254385ecf0e373">appendCols</a> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other)</td></tr>
<tr class="separator:a52ea77d610d1a8cee2254385ecf0e373"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a727ddc2d24050daeef8847e07cc24979"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_double_matrix_array.html#a727ddc2d24050daeef8847e07cc24979">appendRows</a> (const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;other)</td></tr>
<tr class="separator:a727ddc2d24050daeef8847e07cc24979"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7286179d677de8c1ce80ac18067337bc"><td class="memItemLeft" align="right" valign="top"><a id="a7286179d677de8c1ce80ac18067337bc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> ()</td></tr>
<tr class="separator:a7286179d677de8c1ce80ac18067337bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2218d42fb829c2d3eb9d203629e5414d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_double_matrix_array.html#a2218d42fb829c2d3eb9d203629e5414d">setInAllDepth</a> (int i, int j, double val)</td></tr>
<tr class="separator:a2218d42fb829c2d3eb9d203629e5414d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a831ab840a7fa8b02d9a2eaade38b86a5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_double_matrix_array.html#a831ab840a7fa8b02d9a2eaade38b86a5">getInAllDepth</a> (int i, int j, double scale=1.0) const</td></tr>
<tr class="separator:a831ab840a7fa8b02d9a2eaade38b86a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A class for holding an array of matrices.</p>
<p>It used for handling a batch of matrices, and can perform SIMD (single instruction multiple data) ops on all of them. For example, matrix multiplication with another <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> means multiplying the corresponding i'th matrix in each array.</p>
<p>It can also be described as a 3d tensor. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a52ea77d610d1a8cee2254385ecf0e373"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52ea77d610d1a8cee2254385ecf0e373">&#9670;&nbsp;</a></span>appendCols()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DoubleMatrixArray::appendCols </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Appends given matrix to the right of this matrix </p>

</div>
</div>
<a id="a727ddc2d24050daeef8847e07cc24979"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a727ddc2d24050daeef8847e07cc24979">&#9670;&nbsp;</a></span>appendRows()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DoubleMatrixArray::appendRows </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Appends given matrix to the bottom of this matrix </p>

</div>
</div>
<a id="a56abde900700d1a179843f3967e829ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56abde900700d1a179843f3967e829ad">&#9670;&nbsp;</a></span>depthSlice()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> DoubleMatrixArray::depthSlice </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>end</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns a slice along the depth dimension. In the range [start,end) </p>

</div>
</div>
<a id="aeeeb1adb8b4dfb295c7c1c6c9ddfbdff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeeeb1adb8b4dfb295c7c1c6c9ddfbdff">&#9670;&nbsp;</a></span>getColumn()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_double_matrix_array.html">DoubleMatrixArray</a> DoubleMatrixArray::getColumn </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>col</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the submatrix of the specified column </p>

</div>
</div>
<a id="a831ab840a7fa8b02d9a2eaade38b86a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a831ab840a7fa8b02d9a2eaade38b86a5">&#9670;&nbsp;</a></span>getInAllDepth()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;double&gt; DoubleMatrixArray::getInAllDepth </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scale</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the values at (i,j,k) for all k, scaled by scale </p>

</div>
</div>
<a id="a2218d42fb829c2d3eb9d203629e5414d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2218d42fb829c2d3eb9d203629e5414d">&#9670;&nbsp;</a></span>setInAllDepth()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DoubleMatrixArray::setInAllDepth </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Runs getMat(k).set(i,j,val) for all k </p>

</div>
</div>
<a id="a371dc28a3466bf9a31ccdd2157d03484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a371dc28a3466bf9a31ccdd2157d03484">&#9670;&nbsp;</a></span>testSameAlongDepth()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DoubleMatrixArray::testSameAlongDepth </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>title</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>eps</em> = <code>1e-6</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Tests matrices in all depths are the same </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_double_matrix_array_8h_source.html">DoubleMatrixArray.h</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
        <script type="text/javascript" src="doxy-boot.js"></script>
</html>
